Chess Loop Builder

Your task is to write a function that places chess pieces (Knights, Bishops, Rooks, Queens, Kings, not Pawns) on an r × c grid so that:

Click an empty square to place the selected piece, click a piece to remove it, or drag a piece to move it.

Status

cycle present?
pieces attack multiple targets?
pieces attack own type?

Score

Piece values